"""
假定有一个列表的列表，内层列表的每个值都是包含一个字符的字符串，像这样：
grid = [['.', '.', '.', '.', '.', '.'],
 ['.', 'O', 'O', '.', '.', '.'],
 ['O', 'O', 'O', 'O', '.', '.'],
 ['O', 'O', 'O', 'O', 'O', '.'],
 ['.', 'O', 'O', 'O', 'O', 'O'],
 ['O', 'O', 'O', 'O', 'O', '.'],
 ['O', 'O', 'O', 'O', '.', '.'],
 ['.', 'O', 'O', '.', '.', '.'],
 ['.', '.', '.', '.', '.', '.']]
你可以认为 grid[x][y]是一幅“图”在 x、y 坐标处的字符，该图由文本字符组
成。原点(0, 0)在左上角，向右 x 坐标增加，向下 y 坐标增加。
复制前面的网格值，编写代码用它打印出图像。
..OO.OO..
.OOOOOOO.
.OOOOOOO.
..OOOOO..
...OOO...
....O....
"""


"""
解题思路：列表正常遍历后形成的图案顺时针旋转90度即可得到需要的图案
"""


def exchangeList(grid):

    for i in range(len(grid[1])):  # 此处默认了原图案是一个标准的巨型
        for j in range(1, len(grid) + 1):
            print(grid[0 - j][i], end="", flush=True)  # 从原图案的左下角开始打印，行列转换
        print()


if __name__ == "__main__":
    grid_ = [['.', '.', '.', '.', '.', '.'],
             ['.', 'O', 'O', '.', '.', '.'],
             ['O', 'O', 'O', 'O', '.', '.'],
             ['O', 'O', 'O', 'O', 'O', '.'],
             ['.', 'O', 'O', 'O', 'O', 'O'],
             ['O', 'O', 'O', 'O', 'O', '.'],
             ['O', 'O', 'O', 'O', '.', '.'],
             ['.', 'O', 'O', '.', '.', '.'],
             ['.', '.', '.', '.', '.', '.']]
    exchangeList(grid_)
